Numerous electronic technologies such as digital computers, video equipment, and telephone systems have facilitated increased productivity and reduced costs in processing information in most areas of business, science, and entertainment. Reliably providing correct results is very often important. For example, accurate analysis of information and system reliability can be critical in a variety of applications (e.g., driving assistance systems, auto pilot systems, financial transaction systems, health related systems, etc.). However, there are a number of factors that can adversely impact the ability of a system to perform reliably (e.g., environmental factors, alpha particle interference, electromagnetic interference, wear and tear on components, hardware defects, etc.). Traditional attempts at ensuring acceptable reliability are often costly and adversely impact performance.
With respect to ensuring or improving execution reliability, traditional approaches are typically directed at either duplicating unshared hardware or duplicating in higher software levels. The duplicate systems (e.g., either in hardware, software, or both) generate results that are compared for reliability. Traditional duplication in hardware usually involves costly additional hardware. Traditional duplication in software usually involves delays and detrimental impacts to performance. Other approaches are needed.